<?php
include_once('inc/functions.inc.php');

if(!isEmpty(getParam('operation'))){
    
    switch(getParam('operation')){
        case 'contenido': {
            fntAnulacionContenido($db);
            break;
        }
        case 'contenido_2': {
            fntAnulacionContenidoSegundo($db);
            break;
        }
        case 's': {
            fntAnulacionGrabar($db);
            break;
        }
        
    }
    die();
}

function fntAnulacionGrabar($db) {

    //drawDebug($_POST);
    $empresa = getParam("sltAnulacionEmpresa");
    $tipo = getParam("hdnAnulacionTipo");
    $cuenta = getParam("hdnAnulacionCuenta");
    $numero = getParam("txtAnulacionDocumento");
    $valor = getParam("txtAnulacionValor");
    $arrfecha = explode("-", getParam("txtAnulacionFecha"));
    $fecha = $arrfecha[2]."-".$arrfecha[1]."-".$arrfecha[0];
    $concepto = getParam("txtAnulacionConcepto");
    
        $strQuery = "SELECT * 
                 FROM   cllg_contab_ciclo 
                 WHERE  activo = '1' 
                 AND    fecha_inicio <= '{$fecha}' 
                 AND    fecha_fin >= '{$fecha}'
                 AND    total_activo > 0 
                 AND    total_pasivo > 0
                 AND    fk_empresa = '{$empresa}'";
    $qTMP = $db->query($strQuery);
    $intCicloCerrado = $db->num_rows;
    $db->free_result($qTMP);
    
    $strQuery = "SELECT * 
                 FROM   cllg_contab_ciclo 
                 WHERE  activo = '1' 
                 AND    fecha_inicio <= '{$fecha}' 
                 AND    fecha_fin >= '{$fecha}'
                 AND    fk_empresa = '{$empresa}'";
    $qTMP = $db->query($strQuery);
    $intCicloCorrecto = $db->num_rows;
    $db->free_result($qTMP);
    
    
    if( $intCicloCerrado > 0 ) {
        
        ?>
        <div class="ui-widget" style="border: 0px solid white; width: 900px; height: auto; vertical-align: bottom;" align="center">
            <div class="ui-state-error ui-corner-all" style="margin-top: 0px; padding: 0pt 0.7em; height: auto; width: 450px;"> 
                <p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: 0.3em;"></span>
                No se puede ingresar partida en una fecha ya cerrada.</p>
           </div>
        </div>
        <br>
        <?php
        
    }
    else if( $intCicloCorrecto == 0 ) {
        
        ?>
        <div class="ui-widget" style="border: 0px solid white; width: 900px; height: auto; vertical-align: bottom;" align="center">
            <div class="ui-state-error ui-corner-all" style="margin-top: 0px; padding: 0pt 0.7em; height: auto; width: 450px;"> 
                <p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: 0.3em;"></span>
                La fecha de la partida no esta configurada.</p>
           </div>
        </div>
        <br>
        <?php
        
    }
    else {
    
        $strQuery = "SELECT * FROM cllg_contab_ciclo WHERE activo = '1' AND fk_empresa = '{$empresa}'";
        $qTMP = $db->query($strQuery);
        $intNumRows = $db->num_rows;
        $rTMP = $db->fetch_array($qTMP);
        $intCiclo = $rTMP["codigo"];
        $db->free_result($qTMP);
        if( $intNumRows > 0 ) {
            
            $strQuery = "INSERT INTO cllg_contab_ajuste 
                         (id, fecha, monto, ciclo, descripcion)
                         VALUES
                         (NULL, '{$fecha}', {$valor}, '{$intCiclo}', '{$concepto}')";
            $db->query($strQuery);                     
            $intID = mysql_insert_id ( $db->link_id );
            
            if( $intID > 0 ) {
                
                while ( $arrPost = each($_POST) ) {
                    
                    $arrExplode = explode("_", $arrPost["key"]);
                    
                    if( $arrExplode[0] == "hdnCuenta" && $arrPost["value"] > 0 ) {
                        
                        $debe = getParam("txtDebe_".$arrExplode[1]);
                        $haber = getParam("txtHaber_".$arrExplode[1]);
                        if( $debe > 0 && $haber == 0 ) {
                            $monto = $debe;
                            $debe = 1;
                            $haber = 0;
                        }
                        else if( $debe == 0 && $haber > 0 ) {
                            $monto = $haber;
                            $debe = 0;
                            $haber = 1;
                        }
                        $strQuery = "INSERT INTO cllg_contab_cuenta_ajuste 
                                     (cuenta, debe, haber, monto, ajuste)
                                     VALUES
                                     ('{$arrPost["value"]}', '{$debe}', '{$haber}', '{$monto}', '{$intID}')";
                        $db->query($strQuery);
                        
                    }                    
                    
                }
                if( $tipo == 1) {
                    $db->query("UPDATE cllg_bnc_cheque SET ESTADO = '0', USUARIO_ANULA = '{$intID}', RAZON_ANULACION = '{$concepto}' WHERE FK_CUENTA = '{$cuenta}' AND NUMERO = '{$numero}'");
                }
                else if( $tipo == 2 ) {
                    $db->query("UPDATE cllg_bnc_notas SET ESTADO = '0', USUARIO_ANULA = '{$intID}', RAZON_ANULACION = '{$concepto}' WHERE FK_CUENTA = '{$cuenta}' AND TIPO = '1' AND ID = '{$numero}'");
                }
                else if( $tipo == 3 ) {
                    $db->query("UPDATE cllg_bnc_notas SET ESTADO = '0', USUARIO_ANULA = '{$intID}', RAZON_ANULACION = '{$concepto}' WHERE FK_CUENTA = '{$cuenta}' AND TIPO = '2' AND ID = '{$numero}'");
                }
                
                ?>
                <div class="ui-widget" style="border: 0px solid white; width: 900px; height: auto; vertical-align: bottom;" align="center">
                   <div class="ui-state-highlight ui-corner-all" style="margin-top: 0px; padding: 0pt 0.7em; height: auto; width: 220px;"> 
                        <p><span class="ui-icon ui-icon-info" style="float: left; margin-right: 0.3em;"></span>
                        Partida ingresada No. <?php print $intID; ?></p>
                   </div>
                </div>
                <br>
                <script type="text/javascript" language="javascript">
                $("input[name='hdnAnulacionEstatus']").val("<?php print $intID; ?>");
                </script>
                <?php 
                
            }
        }
    }
    
}
function fntAnulacionContenido($db) {
    
    $intEmpresa = getParam("sltAnulacionEmpresa");
    $intTipo = getParam("sltAnulacionTipo");
    $strNumero = getParam("txtAnulacionNumero");
    $strNombre = getParam("txtAnulacionNombreDe");
    
    $arrTipo = array();
    $arrTipo[1] = "Cheque";
    $arrTipo[2] = "Nota de credito";
    $arrTipo[3] = "Nota de debito";
    
    $strQuery = "";
    $strWhere = "";
    if( $intTipo == 0 || $intTipo == 1 ) {
        $strWhere = ( empty($strNumero) ) ? "" : " AND cllg_bnc_cheque.NUMERO = '{$strNumero}'";
        $strWhere .= ( empty($strNombre) ) ? "" : " AND cllg_bnc_cheque.NOMBRE like '%{$strNombre}%'";
        $strQuery.="(SELECT '1' AS TIPO, 
                             cllg_bnc_cuenta.CUENTA AS CUENTA, 
                             cllg_bnc_cuenta.NUMERO, 
                             cllg_bnc_cheque.NUMERO AS DOCUMENTO, 
                             DATE_FORMAT( cllg_bnc_cheque.FECHA, '%d-%m-%Y') AS FECHA, 
                             cllg_bnc_cheque.NOMBRE, 
                             cllg_bnc_cheque.MONTO 
                     FROM   cllg_bnc_cheque,
                            cllg_bnc_cuenta  
                     WHERE  cllg_bnc_cheque.FK_CUENTA = cllg_bnc_cuenta.NUMERO 
                     AND    cllg_bnc_cuenta.FK_EMPRESA = '{$intEmpresa}'
                     AND    cllg_bnc_cheque.ESTADO = '1' 
                     {$strWhere} )";
        
    }
    if( $intTipo == 0 || $intTipo == 2 ) {
        $strWhere = ( empty($strNumero) ) ? "" : " AND cllg_bnc_notas.ID = '{$strNumero}'";
        $strQuery .= (!empty($strQuery)) ? "UNION ALL" : "";
        $strQuery.="(SELECT '2' AS TIPO, 
                             cllg_bnc_cuenta.CUENTA AS CUENTA,
                             cllg_bnc_cuenta.NUMERO, 
                             cllg_bnc_notas.ID AS DOCUMENTO, 
                             DATE_FORMAT( cllg_bnc_notas.FECHA, '%d-%m-%Y') AS FECHA, 
                             'N/A' AS NOMBRE, 
                             cllg_bnc_notas.MONTO 
                     FROM   cllg_bnc_notas,
                            cllg_bnc_cuenta  
                     WHERE  cllg_bnc_notas.FK_CUENTA = cllg_bnc_cuenta.NUMERO 
                     AND    cllg_bnc_notas.TIPO = '1'
                     AND    cllg_bnc_cuenta.FK_EMPRESA = '{$intEmpresa}'
                     AND    cllg_bnc_notas.ESTADO = '1' 
                     {$strWhere} )";
    }
    if( $intTipo == 0 || $intTipo == 3 ) {
        $strWhere = ( empty($strNumero) ) ? "" : " AND cllg_bnc_notas.ID = '{$strNumero}'";
        $strQuery .= (!empty($strQuery)) ? "UNION ALL" : "";
        $strQuery.="(SELECT '3' AS TIPO, 
                            cllg_bnc_cuenta.CUENTA AS CUENTA,
                            cllg_bnc_cuenta.NUMERO, 
                            cllg_bnc_notas.ID AS DOCUMENTO, 
                            DATE_FORMAT( cllg_bnc_notas.FECHA, '%d-%m-%Y') AS FECHA, 
                            'N/A' AS NOMBRE, 
                            cllg_bnc_notas.MONTO 
                     FROM   cllg_bnc_notas,
                            cllg_bnc_cuenta  
                     WHERE  cllg_bnc_notas.FK_CUENTA = cllg_bnc_cuenta.NUMERO 
                     AND    cllg_bnc_notas.TIPO = '2'
                     AND    cllg_bnc_cuenta.FK_EMPRESA = '{$intEmpresa}' 
                     AND    cllg_bnc_notas.ESTADO = '1' 
                     {$strWhere} )";        
    }
    $strQuery .= " ORDER BY TIPO, CUENTA, DOCUMENTO, FECHA";
	//echo $strQuery;
    $qTMP = $db->query($strQuery);
    $intNumRows = $db->num_rows;

    if( $intNumRows > 0 ) {
        while ( $rTMP = $db->fetch_array($qTMP) ) { 
            ?>
            <div style="width: 120px; height: 25px; float: left; text-align: center;"><?php print $arrTipo[$rTMP["TIPO"]]; ?></div>
            <div style="width: 80px; height: 25px; float: left; text-align: left;"><?php print $rTMP["CUENTA"]; ?></div>
            <div style="width: 160px; height: 25px; float: left; text-align: center;"><?php print $rTMP["DOCUMENTO"]; ?></div>
            <div style="width: 100px; height: 25px; float: left; text-align: center;"><?php print $rTMP["FECHA"]; ?></div>
            <div style="width: 240px; height: 25px; float: left; text-align: center;"><?php print $rTMP["NOMBRE"]; ?></div>
            <div style="width: 100px; height: 25px; float: left; text-align: right;">L&nbsp;<?php print number_format( $rTMP["MONTO"], 2); ?></div>
            <div style="width: 75px; height: 25px; float: left; text-align: center;"><input type="radio" name="radAnulacionDocumento" value="<?php print $rTMP["TIPO"]."_".$rTMP["NUMERO"]."_".$rTMP["DOCUMENTO"]; ?>"></div>
            <?php    
        }
    }
    else {
        ?>
        <div class="ui-widget" style="border: 0px solid white; width: 100%; height: auto; vertical-align: bottom; text-align: center;">
            <div class="ui-state-highlight ui-corner-all" style="margin-top: 0px; padding: 0pt 0.7em; height: auto; width: 90%;"> 
                <span class="ui-icon ui-icon-info" style="float: left; margin-right: 0.3em;"></span>
                No se encontraron datos.
           </div>
        </div>
        <?php        
    }
    $db->free_result($qTMP);
}
function fntAnulacionContenidoSegundo($db) {
    //drawDebug($_POST);
    $strDocumento = getParam("radAnulacionDocumento");
    $intEmpresa = getParam("sltAnulacionEmpresa");
    $arrExplode = explode("_", $strDocumento );
    
    $intTipo = $arrExplode[0];
    $intCuenta = $arrExplode[1];
    $strNumero = $arrExplode[2];
    
    date_default_timezone_set("America/Guatemala");
    $strFecha = date("d-m-Y");
    
    $strQuery = "SELECT * FROM cllg_bnc_cuenta WHERE NUMERO = '{$intCuenta}'";
    $qTMP = $db->query($strQuery);
    if( $rTMP = $db->fetch_array($qTMP) ) { 
        ?>
        <div style="width: 900px; height: 25px; float: left; text-align: center;">
            <b>No. de cuenta: </b><?php print $rTMP["CUENTA"]; ?>  
        </div>
        <div style="width: 900px; height: 25px; float: left; text-align: center;">
            <b>Nombre de la cuenta: </b><?php print $rTMP["NOMBRE"]; ?>  
        </div>
        <?php
    }
    $db->free_result($qTMP);
    
    $arrTipo = array();
    $arrTipo[1] = "Cheque";
    $arrTipo[2] = "Nota de credito";
    $arrTipo[3] = "Nota de debito";
    
    $strQuery = "";
    if( $intTipo == 1 ) {
        $strQuery ="SELECT '1' AS TIPO, 
                     cllg_bnc_cheque.FK_CUENTA AS CUENTA, 
                     cllg_bnc_cheque.NUMERO AS DOCUMENTO, 
                     DATE_FORMAT( cllg_bnc_cheque.FECHA, '%d-%m-%Y') AS FECHA, 
                     cllg_bnc_cheque.NOMBRE, 
                     cllg_bnc_cheque.MONTO,
                     cllg_bnc_cheque.CONCEPTO,
                     cllg_bnc_cheque.FK_AJUSTE
                     FROM   cllg_bnc_cheque,
                            cllg_bnc_cuenta  
                     WHERE  cllg_bnc_cheque.FK_CUENTA = cllg_bnc_cuenta.NUMERO 
                     AND    cllg_bnc_cuenta.FK_EMPRESA = '{$intEmpresa}'
                     AND    cllg_bnc_cheque.FK_CUENTA = '{$intCuenta}'
                     AND    cllg_bnc_cheque.NUMERO = '{$strNumero}'";
        
    }
    if( $intTipo == 2 ) {
        $strQuery ="SELECT '2' AS TIPO, 
                     cllg_bnc_notas.FK_CUENTA AS CUENTA, 
                     cllg_bnc_notas.ID AS DOCUMENTO, 
                     DATE_FORMAT( cllg_bnc_notas.FECHA, '%d-%m-%Y') AS FECHA, 
                     '' AS NOMBRE, 
                     cllg_bnc_notas.MONTO,
                     cllg_bnc_notas.CONCEPTO,
                     cllg_bnc_notas.FK_AJUSTE
                     FROM   cllg_bnc_notas,
                            cllg_bnc_cuenta  
                     WHERE  cllg_bnc_notas.FK_CUENTA = cllg_bnc_cuenta.NUMERO 
                     AND    cllg_bnc_notas.TIPO = '1'
                     AND    cllg_bnc_cuenta.FK_EMPRESA = '{$intEmpresa}'
                     AND    cllg_bnc_notas.FK_CUENTA = '{$intCuenta}'
                     AND    cllg_bnc_notas.ID = '{$strNumero}'";
    }
    if( $intTipo == 3 ) {
        $strQuery ="SELECT '3' AS TIPO, 
                     cllg_bnc_notas.FK_CUENTA AS CUENTA, 
                     cllg_bnc_notas.ID AS DOCUMENTO, 
                     DATE_FORMAT( cllg_bnc_notas.FECHA, '%d-%m-%Y') AS FECHA, 
                     '' AS NOMBRE, 
                     cllg_bnc_notas.MONTO,
                     cllg_bnc_notas.CONCEPTO,
                     cllg_bnc_notas.FK_AJUSTE                      
                     FROM   cllg_bnc_notas,
                            cllg_bnc_cuenta  
                     WHERE  cllg_bnc_notas.FK_CUENTA = cllg_bnc_cuenta.NUMERO 
                     AND    cllg_bnc_notas.TIPO = '2'
                     AND    cllg_bnc_cuenta.FK_EMPRESA = '{$intEmpresa}'
                     AND    cllg_bnc_notas.FK_CUENTA = '{$intCuenta}'
                     AND    cllg_bnc_notas.ID = '{$strNumero}'";       
    }

    $qTMP = $db->query($strQuery);
    $intNumRows = $db->num_rows;

    if( $intNumRows > 0 ) {
        while ( $rTMP = $db->fetch_array($qTMP) ) { 
            ?>
            <div style="width: 900px; height: 40px; float: left; text-align: center;">
                <input type="hidden" name="hdnAnulacionTipo" value="<?php print $rTMP["TIPO"]; ?>">
                <input type="hidden" name="hdnAnulacionEstatus" value="">
                <input type="hidden" name="hdnAnulacionCuenta" value="<?php print $rTMP["CUENTA"]; ?>">
            </div>
            <div style="width: 900px; height: 30px; float: left; text-align: center;">
                &nbsp;
            </div>
            <div style="width: 125px; height: 40px; float: left;">
                <b>No. de <?php print $arrTipo[$rTMP["TIPO"]]; ?>:</b>
            </div>
            <div style="width: 125px; height: 40px; float: left;">
                <input type="text" name="txtAnulacionDocumento" value="<?php print $rTMP["DOCUMENTO"]; ?>" size="15" maxlength="15">
            </div>
            <div style="width: 125px; height: 40px; float: left;">
                <?php
                if( $rTMP["TIPO"] == 1 ) { 
                    ?>
                    <b>A nombre de:</b>
                    <?php
                }
                ?>
            </div>
            <div style="width: 525px; height: 40px; float: left;">
                <?php
                if( $rTMP["TIPO"] == 1 ) { 
                    ?> 
                    <input type="text" name="txtAnulacionANombreDe" value="<?php print $rTMP["NOMBRE"]; ?>" style="width: 100%;" readonly>
                    <?php
                }
                ?>
            </div>
            <div style="width: 125px; height: 40px; float: left;">
                <b>Fecha:</b>
            </div>
            <div style="width: 125px; height: 40px; float: left;">
                <input type="text" name="txtAnulacionFecha" value="<?php print $strFecha; ?>" size="15" maxlength="10" style="text-align: center;">
            </div>
            <div style="width: 125px; height: 40px; float: left;">
                <b>Valor:</b> 
            </div>
            <div style="width: 525px; height: 40px; float: left;">
                <input type="text" name="txtAnulacionValor" value="<?php print $rTMP["MONTO"]; ?>" size="15" maxlength="17" style="text-align: right;" readonly>
            </div>
            <div style="width: 125px; height: 40px; float: left;">
                <b>Concepto:</b> 
            </div>
            <div style="width: 775px; height: 40px; float: left;">
                <input type="text" name="txtAnulacionConcepto" value="<?php print $rTMP["CONCEPTO"]; ?>" style="width: 100%;" readonly>
            </div>
            <div style="width: 900px; height: 40px; float: left; text-align: center;">
                &nbsp;
            </div>
            <div style="width: 900px; height: auto; float: left; text-align: center;">
                <div id="frmPartidas-detalle" style="width: 900px; float: left;">
                    <div style="float: left; width: 400px; height: 30px; border-bottom: 1px solid black;"><b>Cuenta</b></div>
                    <div style="float: left; width: 250px; height: 30px; border-bottom: 1px solid black; text-align: center;"><b>Debe</b></div>
                    <div style="float: left; width: 250px; height: 30px; border-bottom: 1px solid black; text-align: center;"><b>Haber</b></div>
                    <div style="float: left; width: 400px; height: 10px;">&nbsp;</div>
                    <div style="float: left; width: 250px; height: 10px;">&nbsp;</div>
                    <div style="float: left; width: 250px; height: 10px;">&nbsp;</div>
                </div>
                <div id="frmPartidas-totales" style="width: 900px; float: left;">
                    <div style="float: left; width: 400px; height: 10px; border-collapse: separate; border-bottom: 1px solid black;">&nbsp;</div>
                    <div style="float: left; width: 250px; height: 10px; border-collapse: separate; border-bottom: 1px solid black;">&nbsp;</div>
                    <div style="float: left; width: 250px; height: 10px; border-collapse: separate; border-bottom: 1px solid black;">&nbsp;</div>
                    <div style="float: left; width: 400px; height: 30px; margin-top: 5px; text-align: right;"><b>Totales</b></div>
                    <div style="float: left; width: 250px; height: 30px; margin-top: 5px;"><input type="text" name="txtTotalDebe" id="txtTotalDebe" value="" style="text-align: right;" readonly="readonly"></div>
                    <div style="float: left; width: 250px; height: 30px; margin-top: 5px;"><input type="text" name="txtTotalHaber" id="txtTotalHaber" value="" style="text-align: right;" readonly="readonly"></div>
                </div>
            </div>
            <div style="width: 900px; height: 40px; float: left; text-align: center;">
                &nbsp;
            </div>
            <div style="width: 900px; height: 40px; float: left; text-align: center;">
                <button type="button" id="btnAnulacionGrabar">Grabar</button>
            </div>
            <script type="text/javascript">
            $(function() {
                $('input[name="txtAnulacionValor"]').formatCurrency({ colorize: true, negativeFormat: '-%s%n', roundToDecimalPlace: 2, symbol: strSimbolo });
                <?php
                $strQuery = "SELECT * 
                             FROM   cllg_contab_ajuste,
                                    cllg_contab_cuenta_ajuste,
                                    cllg_contab_cuenta
                             WHERE  cllg_contab_ajuste.id = cllg_contab_cuenta_ajuste.ajuste
                             AND    cllg_contab_cuenta_ajuste.cuenta = cllg_contab_cuenta.codigo
                             AND    cllg_contab_ajuste.id = '{$rTMP["FK_AJUSTE"]}'";       

                $qTMP1 = $db->query($strQuery);
                $intNumRows1 = $db->num_rows;

                if( $intNumRows1 > 0 ) {
                    $i=0;
                    while ( $rTMP1 = $db->fetch_array($qTMP1) ) {
                        $i++;
                        $strTipo = ( $rTMP1["debe"] == 0 ) ? "d" : "h";
                        ?>
                        fntAnulacionDrawNewLine('<?php print $i; ?>','<?php print $rTMP1["cuenta"]; ?>', '<?php print $rTMP1["nombre"]; ?>', '<?php print $strTipo; ?>', '<?php print $rTMP1["monto"]; ?>');
                        <?php
                    }
                }
                $db->free_result($qTMP1);
                ?>
                
                $("input[name='txtAnulacionFecha']").datepicker({
                    changeMonth: true,
                    changeYear: true,
                    monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic'],
                    dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
                    dateFormat: 'dd-mm-yy'
                });
                
                $("#btnAnulacionGrabar").button({
                    icons: {
                        primary: "ui-icon-disk"
                    }
                }).click( function () {
                    fntAnulacionGrabar();
                }).button( "disable" );
                fntAnulacionGetTotales();
            });
            </script>
            <?php    
        }
    }
    else {
        ?>
        <div class="ui-widget" style="border: 0px solid white; width: 100%; height: auto; vertical-align: bottom; text-align: center;">
            <div class="ui-state-highlight ui-corner-all" style="margin-top: 0px; padding: 0pt 0.7em; height: auto; width: 90%;"> 
                <span class="ui-icon ui-icon-info" style="float: left; margin-right: 0.3em;"></span>
                No se encontraron datos.
           </div>
        </div>
        <?php        
    }
    $db->free_result($qTMP);
}
?>